/*
当spring配置结束后，就要发挥强项，简化开发，注解开发，纯注解开发
    @Component(dao,service,controller三种)定义为bean
    @Configuration定义为配置类，里面包含配置文件上下文
    @ComponentScan(扫描的包)扫描某个包里面所有bean，替换配置文件里扫描
    @Scope作用范围
    @PostConstruct，@PreDestory生命周期
    @Autowired自动装配，@Value简单类型注入,引用类型如果有这个bean自动装配
    @PropertySource("jdbc.properties")加载配置文件，替换配置文件里写的第三方配置文件
    @Bean,表示当前方法返回值是一个bean， @Component(三类)写类上，bean写方法上，返回值设置bean
    @Import，主配置类里导入其他配置类

    Junit
    @RunWith是spring整合junit专用类运行器
    @ContextConfiguration(classes=SpringConfig.class)测试类里面引入spring配置类，就有bean了
    @Test测试注解

    AOP
    @EnableAspectJAutoProxy，配置类上表示是注解aop
    @Aspect，类上定义为切面类
    @Pointcut，aop方法上定义的切入点表达式
    @Around环绕通知
    @Before
    @After

    事物
    @Transactional，在要开启的业务层接口上添加，开启事物
    @EnableTransactionManagement 配置类开启注解事物

 */


//注解就是为了简化开发所以直接用自动装配实现di注入

//@Value简单类型注入，但是会写死没意义，所以一般写配置文件里面 @PropertySource("jdbc.properties")加载配置文件

//管理第三方bean，不能把配置写别人的类里面，要定义一个方法，返回值是第三方对象

//第三方bean专门写在属于他的配置类里面，最后在主配置类里面导入

/*
    Junit专用
    @RunWith是spring整合junit专用类运行器
    @ContextConfiguration(classes=SpringConfig.class)测试类里面引入spring配置类，就有bean了
    @Test测试注解
    */
//2. (注解)@Component(dao,service,controller三种)+扫描()